package com.regentsoft.cloudback.base;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 
 * @author czd
 *
 * @date 2017年11月25日
 *
 * @version 1.0
 */
public interface BaseService<T, PK extends Serializable> {

	/**
	 * 按主键查找对象
	 */
	T findById(PK pk) throws Exception;

	

	/**
	 * 按实体对象属性动态查找列表
	 */
	List<T> findList(T obj) throws Exception;

	/**
	 * 分页
	 */
	Pager findPageList(T obj, Integer pageNumber, Integer pageSize) throws Exception;
	
	

	/**
	 * 保存
	 * @throws Exception 
	 */
	int add(T obj) throws Exception;

	/**
	 * 更新
	 */
	int update(T obj) throws Exception;

	/**
	 * 删除
	 */
	int delete(PK pk) throws Exception;
	
	int getTotalCount(Map<String, Object> map) throws Exception;
	
	
	List<T> queryByPage(Map<String, Object> map) throws Exception;

}
